/*
	File:		IGameState.h
	Course:		SGD 1210
	Author:		dmonroe
	Purpose:	Interface (abstract base class)
				for game states
*/



#pragma once


class IGameState
{
public:
	virtual ~IGameState( void )		= 0
	{	/* do nothing */	}

	// Pure virtual methods MUST be overriden by child classes
	virtual	void Enter	( void )	= 0;		// Load resources
	virtual void Exit	( void )	= 0;		// Unload resources

	virtual bool Input	( void )	= 0;		// Handle user input
	virtual void Update	( float fElapsedTime )	= 0;		// Update game tokens
	virtual void Render	( void )	= 0;		// Render game tokens

};

